/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.beans;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//import javax.faces.model.SelectItem;
import org.cip.esymons.eventos.adapaters.ExportarExcel;
import org.cip.esymons.eventos.adapaters.RutaCarpetaReporte;
import org.cip.esymons.eventos.bc.EventoDelegate;
import org.cip.esymons.eventos.be.EgresosAdapter;
import org.cip.esymons.eventos.be.IngresosAdapter;
import org.cip.esymons.eventos.be.UtilidadAdapter;
import org.cip.esymons.general.bc.AreaFacade;
import org.cip.esymons.general.bc.EspecialidadCapituloFacade;
//import org.cip.esymons.general.be.Area;
//import org.cip.esymons.general.be.Capitulo;

/**
 *
 * @author oscar
 */
public class RepEIController {

    EventoDelegate delegateEvento;
    String evento,evento1,nombreEvento;
    int codEvento = 0;
    int codEvento1 = 0;
    RutaCarpetaReporte ruta;
    List<IngresosAdapter> listaIngresos;
    List<EgresosAdapter> listaEgresos;
    List<UtilidadAdapter> listaUtilidades;
    Date desde, hasta;
    EspecialidadCapituloFacade especialidadCapituloFacade;
    AreaFacade areaFacade;
    String codCapitulo, codArea;
    Boolean bcapitulo, barea, bevento, bfechas;

    public RepEIController() {
        delegateEvento = new EventoDelegate();
        ruta = new RutaCarpetaReporte();
        listaIngresos = new ArrayList<IngresosAdapter>();
        listaUtilidades = new ArrayList<UtilidadAdapter>();
        especialidadCapituloFacade = new EspecialidadCapituloFacade();
        areaFacade = new AreaFacade();
        bcapitulo = barea = bevento = bfechas = false;
        codCapitulo = codArea = "0";
        listaEgresos=new ArrayList<EgresosAdapter>();
    }

    public String getNombreEvento() {
        return nombreEvento;
    }

    public void setNombreEvento(String nombreEvento) {
        this.nombreEvento = nombreEvento;
    }

    public int getCodEvento1() {
        return codEvento1;
    }

    public void setCodEvento1(int codEvento1) {
        this.codEvento1 = codEvento1;
    }

    public String getEvento1() {
        return evento1;
    }

    public void setEvento1(String evento1) {
        this.evento1 = evento1;
    }

    public Boolean getBcapitulo() {
        return bcapitulo;
    }

    public void setBcapitulo(Boolean bcapitulo) {
        this.bcapitulo = bcapitulo;
    }

    public Boolean getBarea() {
        return barea;
    }

    public void setBarea(Boolean barea) {
        this.barea = barea;
    }

    public Boolean getBevento() {
        return bevento;
    }

    public void setBevento(Boolean bevento) {
        this.bevento = bevento;
    }

    public Boolean getBfechas() {
        return bfechas;
    }

    public void setBfechas(Boolean bfechas) {
        this.bfechas = bfechas;
    }

    public String getCodArea() {
        return codArea;
    }

    public void setCodArea(String codArea) {
        this.codArea = codArea;
    }

    public String getCodCapitulo() {
        return codCapitulo;
    }

    public void setCodCapitulo(String codCapitulo) {
        this.codCapitulo = codCapitulo;
    }

    public Date getDesde() {
        return desde;
    }

    public void setDesde(Date desde) {
        this.desde = desde;
    }

    public Date getHasta() {
        return hasta;
    }

    public void setHasta(Date hasta) {
        this.hasta = hasta;
    }

    public String getEvento() {
        return evento;
    }

    public void setEvento(String evento) {
        this.evento = evento;
    }

    public int getCodEvento() {
        return codEvento;
    }

    public void setCodEvento(int codEvento) {
        this.codEvento = codEvento;
    }

    @SuppressWarnings("static-access")
    public String buscarIngresos() {
        listaIngresos.clear();
        try {
            listaIngresos = delegateEvento.listarListaEventos(codEvento);
            System.out.print("-Tamanio---" + listaIngresos.size());
            if (listaIngresos.size() > 0) {
                String rutaPlantilla = "", archGenerado = "";
                rutaPlantilla = ruta.getRuta() + "PlantillaDetalleIngresosEvento.xls";
                archGenerado = ruta.getRuta() + "RepDetalleIngresosEvento.xls";
                ExportarExcel export = new ExportarExcel();
                try {
                    export.generarDocDesdePlantilla(rutaPlantilla, archGenerado);
                    int i = 5;
                    for (IngresosAdapter det : listaIngresos) {
                        export.addCeldaString(i, 1, det.getFecha());
                        export.addCeldaString(i, 2, det.getTipoDocumento());
                        export.addCeldaString(i, 3, det.getNroBoleta());
                        export.addCeldaString(i, 4, det.getNroCip());
                        export.addCeldaString(i, 5, det.getDni());
                        export.addCeldaString(i, 6, det.getPersona());
                        export.addCeldaString(i, 7, det.getTparticipante());
                        export.addCeldaString(i, 8, det.getRuc());
                        export.addCeldaDouble(i, 9, det.getMonto());
                        export.addCeldaString(i, 10, det.getDescPago());
                        export.addCeldaString(i, 11, det.getEstadoPago());
                        i++;
                    }
                    ruta.generarExcel(archGenerado, export.cerrarConexion());
                } catch (Exception e) {
                    ruta.generarExcel(archGenerado, export.cerrarConexion());
                    System.out.print("----" + e.toString());
                }
            } else {
                ruta.error("Deben existir datos en la Lista para exportar");
            }
        } catch (Exception e) {
            System.out.println("----Error---" + e.toString());
        }
        return null;
    }

    @SuppressWarnings("static-access")
    public String buscarEgresos(){
         listaEgresos.clear();
        try {
            listaEgresos = delegateEvento.listarListaEgresos(codEvento1);
             if (listaEgresos.size() > 0) {
                String rutaPlantilla = "", archGenerado = "";
                rutaPlantilla = ruta.getRuta() + "PlantillaDetalleEgresosEvento.xls";
                archGenerado = ruta.getRuta() + "RepDetalleEgresosEvento.xls";
                ExportarExcel export = new ExportarExcel();
                try {
                    export.generarDocDesdePlantilla(rutaPlantilla, archGenerado);
                    export.addCeldaString(3,3,nombreEvento);
                    int i = 6;
                    for (EgresosAdapter det : listaEgresos) {
                        export.addCeldaString(i, 1, det.getFechaCon());
                        export.addCeldaDouble(i, 2, det.getMonto());
                        export.addCeldaString(i, 3, det.getTipoDoc());
                        export.addCeldaString(i, 4, det.getSerie());
                        export.addCeldaString(i, 5, det.getNumero());
                        i++;
                    }
                    ruta.generarExcel(archGenerado, export.cerrarConexion());
                } catch (Exception e) {
                    ruta.generarExcel(archGenerado, export.cerrarConexion());
                    System.out.print("----" + e.toString());
                }
            } else {
                ruta.error("Deben existir datos en la Lista para exportar");
            }
        }catch(Exception e){

        }
        return null;
    }

    @SuppressWarnings("static-access")
    public String buscarUtilidades() {
        //Validar el reporte
        int parm = 0;
        if (bcapitulo) {
            parm++;
        }
        if (barea) {
            parm = +2;
        }
        if (bevento) {
            try {
                if (codEvento == 0) {
                    ruta.error("Elija un Evento");
                    return null;
                }
            } catch (Exception e) {
            }
            parm = +4;
        }
        if (bfechas) {
            try {
                if (desde.equals(null)) {
                    ruta.error("Ingrese Fechas Correctamente");
                    return null;
                }
                if (hasta.equals(null)) {
                    ruta.error("Ingrese Fechas Correctamente");
                    return null;
                }
                if (desde.compareTo(hasta) >= 0) {
                    ruta.error("Ingrese Fechas Correctamente");
                    return null;
                }
            } catch (Exception e) {
                ruta.error("Ingrese Fechas Correctamente");
                return null;
            }
            parm = +8;
        }
        //Reportar las Utilidades
        listaUtilidades.clear();
        String rutaPlantilla = "", archGenerado = "";
        rutaPlantilla = ruta.getRuta() + "PlantUtilidades.xls";
        archGenerado = ruta.getRuta() + "RepUtilidades.xls";
        ExportarExcel export = new ExportarExcel();
        try {
            listaUtilidades=delegateEvento.listarUtilidades(codEvento,Integer.parseInt(codCapitulo),Integer.parseInt(codArea),desde,hasta,parm);
            export.generarDocDesdePlantilla(rutaPlantilla, archGenerado);            
            ruta.generarExcel(archGenerado, export.cerrarConexion());
        } catch (Exception e) {
            ruta.generarExcel(archGenerado, export.cerrarConexion());
            System.out.print("----" + e.toString());
        }
        return null;
    }


}
